package simple;
//二分法
/*
给定一个n个元素有序的（升序）整型数组nums 和一个目标值target ，写一个函数搜索nums中的 target，如果目标值存在返回下标，
否则返回 -1。

 */
public class Demo01 {
    public static void main(String[] args) {

    }

    public static int search(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
        int mid;
        while (left <= right){
            mid = right + (right - left)>>1;//防止越界
            if(nums[mid] == target){
                return mid;
            }
            //目标和中间值比较
            if(target < nums[mid]){
                right = mid - 1;
            }
            if (target > nums[mid]){
                left = mid + 1;
            }
        }
        return -1;
    }
}
